package matchs

import (
	"github.com/flipped-aurora/gin-vue-admin/server/global"
)

// MatchAskReply 问问回复表模型
type MatchAskReply struct {
	global.GVA_MODEL
	TaskID      uint64 `gorm:"column:task_id;type:bigint unsigned;not null;comment:'关联问问任务ID（match_ask_task.id）'" json:"taskId"`
	ReplyUserID uint64 `gorm:"column:reply_user_id;type:bigint unsigned;not null;comment:'回复者用户ID（关联system.SysUser）'" json:"replyUserId"`
	Content     string `gorm:"column:content;type:text;not null;comment:'回复内容文本'" json:"content"`
	IsAnonymous int8   `gorm:"column:is_anonymous;type:tinyint;not null;default:1;comment:'是否匿名回复：0-实名 1-匿名'" json:"isAnonymous"`
	Status      int8   `gorm:"column:status;type:tinyint;not null;default:0;comment:'回复状态：0-待处理 1-被采纳 2-未采纳 3-已失效'" json:"status"`
	ChatID      string `gorm:"column:chat_id;type:varchar(64);default:'';comment:'关联OpenIM会话ID（被采纳后生成）'" json:"chatId"`
}

// TableName 自定义表名（适配框架蛇形命名规范）
func (m *MatchAskReply) TableName() string {
	return "match_ask_reply"
}

// 回复状态枚举常量
const (
	MatchAskReplyStatusPending  = 0 // 待处理（已回复，发起者未操作）
	MatchAskReplyStatusAccepted = 1 // 被采纳（发起者选择该回复，已创建聊天）
	MatchAskReplyStatusRejected = 2 // 未采纳（发起者选择其他回复或忽略）
	MatchAskReplyStatusInvalid  = 3 // 已失效（问问任务超时，回复无效）
)
